Windows实现简单OCR
简单的实现ocr
ubuntu ocr
这个能够完全在ubuntu17.10.1能够完全实现,需要注意的只是需要自己安装idle(Python的IDE),但是到了windows上就不太一样了。上文列出了三个需要安装的,一个是tesseract-ocr这个软件,还有一个pytesseract:用来使用python调用tesseract。还有ptyhon Image包。
接下来开始在windows上实现吧。(实验系统windows10)
首先找到tesseract对应的window版本
windows ocr。直接下载安装window的exe即可。然后把需要在系统变量path中指定路径,也可以在程序中进行说明:1
pytesseract.pytesseract.tesseract_cmd = 'C:/Program Files (x86)/Tesseract-OCR/tesseract'
再者是pytesseract。
原文中也是pip安装。这里也同样。
最后是python Image 包。
本来打开link. 准备手动安装,然后用pip list查看python已经默认安装好了。这个link中有句话需要注意。就是Image包的引用,需要改成如下。1
from PIL import Image
准备完成,开始dibug。现在code如下:
1 | from PIL import Image |
出现如下错误:
错误1.出现这个错误时好像还没有安装tesseract-ocr软件的windows版本。
1 | WindowsError: [Error 2] The system cannot find the file specified |
文件找不到,估计不是文件找不到;因为如果把文件名字改成其他,则汇报出其他错误。在google上找到的一个解决方案。得到答案是可能找不到tesseract-ocr软件。除了安装好之外,还需要配置TESSDATA_PREFIX系统path
错误2.
1 | UnicodeEncodeError: 'charmap' codec can't encode character u'\ufb01' in posistion31: character maps to <undefined> |
肯定是编码问题。在google上找到的一个解决方案 . 看完搜索结果以为是读取的编码设置,后来想想有可能是print出错。代码上加上编码转换。如下:1
print pytesseract.image_to_string(Image.open('Screenshot_20180417-182235.jpg')).encode("utf-8")
这下终于对了。